package com.ninong.ker.admin.sevice;

import com.github.pagehelper.PageInfo;
import com.ninong.ker.admin.domain.User;
import com.ninong.ker.admin.service.dto.UserDTO;

import java.util.List;

/**
 * 系统service
 * @author cmd
 *
 */
public interface UserService {
	
	/**
	 * 用户list
	 * @param dto
	 * @return
	 */
	PageInfo<User> listPage(UserDTO dto);

	/**
	 * 删除用户
	 * @param ids
	 */
	void delete(String[] ids);
	
	/**
	 * 新增或修改用户
	 * @param entity
	 * @throws Exception 
	 */
	void create(User entity) throws Exception;

	/**
	 * 用户详情
	 * @param id
	 * @return
	 */
	User get(String id);

	/**
	 * 激活禁用用户
	 * @param id 用户id
	 * @param enable 是否激活 
	 */
	void enableUser(String id, Boolean enable);

	/**
	 * 用户树形集合
	 * @return
	 */
    List<User> listUserTree();
    
    /**
     * 查询租户的管理员用户
     * @param tenantId
     * @return
     */
    List<User> selectTenantAdminUser(String tenantId);

    /**
     * 重置用户密码
     * @param id
     */
	void resetPassword(String id);

	/**
	 * 用户修改密码
	 * @param dto
	 * @param token
	 * @return
	 * @throws Exception 
	 */
	String changePassword(UserDTO dto, String token) throws Exception;
    
    
}
